package io.github.echarts.option.component;


import io.github.echarts.option.abstracts.AbstractOption;
import io.github.echarts.option.style.AxisStyle;
import io.github.echarts.option.style.LineStyle;
import io.github.echarts.option.style.TextStyle;

/**
 * 雷达图坐标系组件配置项。
 */

public class Radar extends AbstractOption {
    
    private static final long serialVersionUID = 1L;
    
    private Indicator[] indicator;
    private String shape;
    private Integer radius;
    private Integer startAngle;
    private String center[];
    private LineStyle axisLine;
    private LineStyle splitLine;
    private AxisStyle axisName;
    private Boolean splitArea;
    
    /**
     * 构造一个新的雷达图坐标系配置实例。
     */
    public Radar() {
        // 默认构造函数
    }
    
    /**
     * 获取雷达图的指示器数组。
     *
     * @return 指示器数组
     */
    public Indicator[] getIndicator() {
        return indicator;
    }
    
    /**
     * 设置雷达图的指示器数组。
     *
     * @param indicator 指示器数组
     * @return 当前配置实例，用于链式调用
     */
    public Radar setIndicator(Indicator... indicator) {
        this.indicator = indicator;
        return this;
    }
    
    /**
     * 获取雷达图绘制类型。
     * 可选值：'polygon'(多边形), 'circle'(圆形)
     *
     * @return 雷达图绘制类型
     */
    public String getShape() {
        return shape;
    }
    
    /**
     * 设置雷达图绘制类型。
     *
     * @param shape 雷达图绘制类型，可选值：'polygon'(多边形), 'circle'(圆形)
     * @return 当前配置实例，用于链式调用
     */
    public Radar setShape(String shape) {
        this.shape = shape;
        return this;
    }
    
    /**
     * 获取雷达图的半径。
     *
     * @return 雷达图的半径
     */
    public Integer getRadius() {
        return radius;
    }
    
    /**
     * 设置雷达图的半径。
     *
     * @param radius 雷达图的半径
     * @return 当前配置实例，用于链式调用
     */
    public Radar setRadius(Integer radius) {
        this.radius = radius;
        return this;
    }
    
    /**
     * 获取雷达图的起始角度。
     *
     * @return 起始角度，单位为度，例如90表示从12点钟方向开始
     */
    public Integer getStartAngle() {
        return startAngle;
    }
    
    /**
     * 设置雷达图的起始角度。
     *
     * @param startAngle 起始角度，单位为度，例如90表示从12点钟方向开始
     * @return 当前配置实例，用于链式调用
     */
    public Radar setStartAngle(Integer startAngle) {
        this.startAngle = startAngle;
        return this;
    }
    
    /**
     * 获取雷达图的中心点坐标。
     *
     * @return 中心点坐标数组，数组第一项是横坐标，第二项是纵坐标
     */
    public String[] getCenter() {
        return center;
    }
    
    /**
     * 设置雷达图的中心点坐标。
     *
     * @param center 中心点坐标数组，数组第一项是横坐标，第二项是纵坐标
     * @return 当前配置实例，用于链式调用
     */
    public Radar setCenter(String... center) {
        this.center = center;
        return this;
    }
    
    /**
     * 获取坐标轴轴线相关设置。
     *
     * @return 坐标轴轴线设置
     */
    public LineStyle getAxisLine() {
        return axisLine;
    }
    
    /**
     * 设置坐标轴轴线相关设置。
     *
     * @param axisLine 坐标轴轴线设置
     * @return 当前配置实例，用于链式调用
     */
    public Radar setAxisLine(LineStyle axisLine) {
        this.axisLine = axisLine;
        return this;
    }
    
    /**
     * 获取坐标轴分隔线相关设置。
     *
     * @return 坐标轴分隔线设置
     */
    public LineStyle getSplitLine() {
        return splitLine;
    }
    
    /**
     * 设置坐标轴分隔线相关设置。
     *
     * @param splitLine 坐标轴分隔线设置
     * @return 当前配置实例，用于链式调用
     */
    public Radar setSplitLine(LineStyle splitLine) {
        this.splitLine = splitLine;
        return this;
    }
    
    /**
     * 获取指示器名称相关设置。
     *
     * @return 指示器名称设置
     */
    public AxisStyle getAxisName() {
        return axisName;
    }
    
    /**
     * 设置指示器名称相关设置。
     *
     * @param axisName 指示器名称设置
     * @return 当前配置实例，用于链式调用
     */
    public Radar setAxisName(AxisStyle axisName) {
        this.axisName = axisName;
        return this;
    }
    
    /**
     * 是否显示分隔区域。
     *
     * @return 如果显示分隔区域则为true，否则为false
     */
    public Boolean getSplitArea() {
        return splitArea;
    }
    
    /**
     * 设置是否显示分隔区域。
     *
     * @param splitArea 如果要显示分隔区域则为true，否则为false
     * @return 当前配置实例，用于链式调用
     */
    public Radar setSplitArea(Boolean splitArea) {
        this.splitArea = splitArea;
        return this;
    }
} 